package day02;

public class DataTypeDemo {
    public static void main(String[] args) {
        //int 类型;整数,四个字节,-2^31到2^31-1(正负20多个亿)
//        int a = 25; //25为整数直接量,默认为int类型
//        System.out.println(a);
        //int b = 100000000000;编译错误,100亿默认为int类型,但超出范围了
//        int c = 3.14;//编译错误只能为整数不能位小数

        System.out.println(5 / 2);//2
        System.out.println(2 / 5);//0
        System.out.println(5.0 / 2);//2.5

//        int d = 2147483647;
//        System.out.println(d);
//        d= d+1;
//        System.out.println(d);//-2147483648(int的最小值),发生了溢出,需要避免

/*



        //long=长整型,八个字节, -2^63到2^63-1
        long a = 25L; //25L长整型直接量
        //long b = 1000000000000000; 编译错误,100亿默认为int类型,但超出了int范围了
        long c = 10000000000L; //100亿L为长整型直接量
        //long d= 3.14L; 编译错误,长整型变量中只能装整数

        long e = 1000000000*2*10L;
        System.out.println(e);//200亿
        long f = 1000000000*3*10L;
        System.out.println(f);//不是300亿
        long g = 1000000000L*3*10;
        System.out.println(g);//300亿

 */
/*


        //3)double类型 :双精度浮点型,8个字节
        double a = 3.14; // 3.14为小数
        float b = 3.14F; //3.14F为float

        double c = 3.0,d = 2.9;
        System.out.println(c-d);//0.1000000000000009,有可能发生舍入误差

 */
/*


        //3)boolean类型
        //布尔型 ,占用一个字节
        //只能存储ture和false
        boolean a = true; //true为布尔型直接量
        boolean b = false; // false为布尔型直接量
//        boolean c = 250; //编译错误,布尔型变量中只能存储true和flase


        //5)char; 字符型,两个字节


       char c1 = '女';//字符女
       char c2 = 'f' ;//字符f
       char c3 = '6' ;//字符6
       char c4 = ' ' ;//空格符

        //char c5 = 女;//编译错误,字符型直接量必须放在单引号中
        //char c6 = '';//编译错误,必须有字符
        //char c7 = '10'; // 编译错误,只能存储一个字符

        char c8 = 65; //0到65535之间
        System.out.println(c8); //println()会依据变量的类型来做输出展示
                                //c8为 char类型,所以会以字符的形式输出

        char c9 = '\\';
        System.out.println(c9);//\
 */

        /*


        int a = 5;
        long b = a;//自动类型转换
        int c = (int)b;//强制类型转换

        long d = 5; //自动类型转换
        double e = 5;//自动类型转换
        System.out.println(e);

        long f = 10000000000L;
        int g = (int)f;
        System.out.println(g); //140065488,强转有可能会发生溢出

        double h = 25.987;
        int i  = (int)h;
        System.out.println(i);//25,强转有可能丢失精度
        */

/*


        //1)整数直接量可以直接复制给byte short char ,但不能超出范围
        //2)byte,short ,char,型数据参与运算时,先一律转为int在进行计算
        byte b1 = 5 ;
        byte b2 = 6;
        byte b3 = (byte) ((byte) b1 + b2);
        System.out.println(2+2);//4
        System.out.println(2+'2');//52, 2加上'2'的码50
        System.out.println('2' + '2');//100  '2'的码50,加上'2'的码50
        System.out.println('2');//2
        System.out.println('我' + '你');
        System.out.println((int)'我');
        System.out.println((int)'你');

        int m = 'a';
        System.out.println(m);//查看字符对应的码
        char n  = 97;
        System.out.println(n);//查看对应的数字

 */





    }
}
